package com.jin.六大设计原则.里氏替换原则.顺从;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.math.BigDecimal;

//升级版储蓄卡
//满足的里氏替换原则，既实现了抽象类的方法，有没有破坏父类中原有的方法
public class CashCard extends BankCard {

    private Logger logger = LoggerFactory.getLogger(BankCard.class);
    public CashCard(String cardNo, String cardDate) {
        super(cardNo, cardDate);
    }

    //规则过滤，储蓄卡直接通过
    boolean rule(BigDecimal amount) {
        return true;
    }

    //提现
    public String withdrawal(String orderId,BigDecimal amount){
        //模拟支付成功
        logger.info("提现成功，单号:{} 金额{}",orderId,amount);
        //直接调用抽象类已经写好的方法
        return super.negative(orderId,amount);
    }

    //储蓄
    public String recharge(String orderId,BigDecimal amount){
        //模拟充值成功
        logger.info("充值成功，单号:{} 金额{}",orderId,amount);
         return super.positive(orderId,amount);
    }

    //风险校验（特有的新增的）
    public boolean checkRisk(String cardNo,String orderId,BigDecimal amount){
        //模拟风险校验
        logger.info("风险校验,卡号：{} 单号：{} 金额：{}",cardNo,orderId,amount);
        return true;
    }
}
